|
[Delphi |
OOP] |
|
Objektorientierung - es gibt NUR Objekte Ein System, das vorgibt, in objektorientierte Programmierung einzuführen, muß selbst objektorientiert aufgebaut sein. Diese Forderung ist eingehalten. Alles, was in der Delphi-Karel-Welt ist, sind Objekte und als solche ansprechbar. Deshalb wurde auch z. B. die Spur, die der Roboter ziehen kann, als Objekt angelegt und kann wie jedes Objekt auch wieder entfernt werden. Ebenso werden in den Container des Robots die aufgesammelten Objekte getan und können nach dem LIFO-Prinzip (stack) wieder heraus genommen werden. Architektur / Design Die Klassenhierarchie ist klassisch angelegt mit relativ tief gestaffelten Vererbungsketten. Wo die Situationen es erfordern, sind polymorphe Zugriffe vorhanden (Darstellung, Container). Die Struktur der Klassen in Karel D. Robot ergibt sich aus der
Sachlogik des Anwendungsproblems, nämlich dem Modell einer Welt mit Sachen
und Lebewesen, wie im OOA-Modell dargestellt. Üblicherweise werden die
so gefundenen Klassen dann ‚Fachklassen’ genannt, womit implizit unterstellt
wird, daß sie kein Wissen über die Art und Weise ihrer Darstellung auf
dem Bildschirm (View) haben und nicht an der Steuerung (Controller) durch
die Entgegennahme von Events beteiligt sind. Zweiseitige Assoziationen Wenn Objekte wie hier sich selbst darstellen sollen, muß ein Zugriff
auf Systemkomponenten (Canvas usw.) organisiert werden, was in Fachklassen
eigentlich nichts zu suchen hat. Das wird hier mit Hilfe der
Grafik-Bibliothek uGrafik realisiert. Mehrere Roboter / Critters Selbstverständlich können sich mehrere Exemplare 'gleichzeitig' in der Welt bewegen. In dieser Version ist jedoch keine echte Nebenläufigkeit eingebaut. Das hat zur Folge, daß ein Objekt seine Bewegung abgeschlossen haben muß, bevor das nächste startet. Da ein Weg 30 pix beträgt, ist das natürlich deutlich sichtbar. Ein Effekt, mit dem man aber das Problem der Nebenläufigkeit schön sichtbar machen kann. Bildschirmauflösung - Darstellung Unter Windows 2000 kommt es manchmal vor, daß die Zeichen 1..12 , A..N (Zeilen/Spalten) in einem zu kleinen Font dargestellt werden. --> F.A.Q
|
|
© 25. August 2005 Siegfried Spolwig |
|